Debouncing hardware

Contenido

Como evitar el rebote de interruptores directamente en el hardware.

Usaremos lo que se llama un filtro RC, que consiste de una resistencia (R) y un condensador (C)

Descripción

Podemos tener dos situaciones:

Pulsador a positivo

En este circuito el condensador está descargado cuando el pulsador está en reposo.

Pulsador a tierra

En este circuito el condensador está cargado cuando el pulsador está en reposo.

En un circuito normal solo tendríamos el pulsador y la resistencia (ya sea pull-up o pull-down), en este circuito a mayores tenemos un condensador (en este caso de 4.7uF) y una resistencia a mayores (en este caso de 425 Ohm).

El funcionamiento del circuito consiste en que el condensador se irá cargando o descargando y esto generará una señal mas estabilizada, la resistencia de 425 Ohm es la que controla con que velocidad se cargará o descargará el condensador al activar el pulsador.

Calculo de resistencia y condensador

La formula base para hacer los calculos es:

Debounce_time = 5 x Resistencia x Capacitancia

NOTA: el 5 es una constante que nos permite hacer mas grande el tiempo de antirebote para asegurarnos de que el condensador lo absorve.

Elección de parámetros:

Ahora podemos usar la formula para calcular directamete el valor de la resistencia que trabajará con el condensador.

Resistencia = Debounce_time / (5 x Capacitancia)

Si cogemos un condensador de 4.7uF y un tiempo de debounce de 10 ms, el calculo sería: 10 / 5 * 0.0047 lo que nos daría unos 425 Ohm.

NOTA: Al hacer el calculo tanto la capacitancia como el tiempo tienen que estar en la misma medida, como tenemos el tiempo en milisegundos pues pasamos los microfaradios a milifaradios (dividimos entre 1.000), también podemos hacerlo al reves y pasar los milisegundos a microsegundos.

Tags

AVR | debounce switch | capacitor